package com.fau.om.service;

import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;

import com.fau.om.entity.MedicalAdmin;
import com.fau.om.entity.MedicalGroup;
import com.fau.om.entity.MedicalMediaInfo;
import com.fau.om.entity.MedicalOrdersMediaSta;
import com.fau.om.entity.MedicalOrdersProSta;
import com.fau.om.entity.MedicalOrdersProvinceSta;
import com.fau.om.entity.MedicalOrdersRidepinSta;
import com.fau.om.util.Page;

/**
 * @desc 订单统计接口
 * @author kangyj
 * @datetime 2014年9月28日,上午10:31:20
 */
public interface IStatisticsManagerService {
	
	/**
	 * @desc 分页查询核单员订单统计
	 * @param proSta 订单产品统计表实体类（用于接收查询条件）
	 * @param admin 当前用户
	 * @param map 分页参数
	 * @return
	 * @author kangyj
	 * @datetime 2014年12月11日,下午2:15:47
	 */
	public Page findCheckUserOrdersSta(MedicalOrdersProSta proSta, MedicalAdmin admin, Map<String, Object> map);

	/**
	 * @desc 媒体订单统计
	 * @param mediaSta 媒体订单统计表实体类
	 * @param admin 当前用户
	 * @param map 分页参数
	 * @return
	 * @author kangyj
	 * @datetime 2014年12月11日,下午5:48:35
	 */
	public Page findMediaStatisticsByPage(MedicalOrdersMediaSta mediaSta, MedicalAdmin admin, Map<String, Object> map);
	
	/**
	 * @desc 产品销售统计
	 * @param proSta 产品销售统计实体类
	 * @param admin 当前用户
	 * @return
	 * @author kangyj
	 * @datetime 2014年12月10日,下午10:03:39
	 */
	public List<MedicalOrdersProSta> findProSalesSta(MedicalOrdersProSta proSta, MedicalAdmin admin);
	
	/**
	 * @desc 各省份订单统计
	 * @param provinceSta 省份订单统计实体类
	 * @param admin 当前登录用户
	 * @param map 分页参数
	 * @return
	 * @author kangyj
	 * @datetime 2014年9月28日,上午11:54:16
	 */
	public Page findProvinceStatisticsByPage(MedicalOrdersProvinceSta provinceSta, MedicalAdmin admin, Map<String, Object> map);
	
	/**
	 * @desc 查询所有客服组
	 * @param admin
	 * @return
	 * @author kangyj
	 * @datetime 2014年12月11日,上午10:42:01
	 */
	public List<MedicalGroup> findAllCurSerGroup(MedicalAdmin admin);
	
	/**
	 * @desc 查询客服组下话务员
	 * @param groupId 组id
	 * @return
	 * @author kangyj
	 * @datetime 2014年12月11日,上午10:43:14
	 */
	public List<MedicalAdmin> findCurSerByGroupId(String groupId);
	
	/**
	 * @desc 查媒体
	 * @param admin
	 * @return
	 * @author kangyj
	 * @datetime 2014年12月11日,上午11:17:12
	 */
	public List<MedicalMediaInfo> findMediaInfo(MedicalAdmin admin);
	
	/**
	 * @desc 分页查询搭销产品统计
	 * @param ridepinSta 订单搭销产品统计实体类
	 * @param admin 当前用户
	 * @param map 分页参数
	 * @return
	 * @author kangyj
	 * @datetime 2014年12月12日,上午2:09:59
	 */
	public Page findridePinProSta(MedicalOrdersRidepinSta ridepinSta, MedicalAdmin admin, Map<String, Object> map);
	
	/**
	 * @desc 导出核单员订单统计
	 * @return Workbook
	 * @author liy
	 * @datetime 2014年12月14日,下午7:10:27
	 */
	public Workbook export(MedicalOrdersProSta proSta) throws Exception ;
	
	/**
	 * @desc 导出媒体订单统计
	 * @param mediaSta
	 * @return Workbook
	 * @throws Exception 
	 * @author liy
	 * @datetime 2014年12月14日,下午9:07:47
	 */
	public Workbook mediaStaExport(MedicalOrdersMediaSta mediaSta) throws Exception ;
	
	/**
	 * @desc 导出订单产品销售统计
	 * @param mediaSta
	 * @return Workbook
	 * @throws Exception 
	 * @author liy
	 * @datetime 2014年12月14日,下午9:42:35
	 */
	public Workbook productStaExport(MedicalOrdersProSta proSta) throws Exception ;
	
	/**
	 * @desc 导出各省份订单统计
	 * @param proSta
	 * @return Workbook
	 * @throws Exception 
	 * @author liy
	 * @datetime 2014年12月14日,下午10:25:42
	 */
	public Workbook provinceStaExport(MedicalOrdersProvinceSta provinceSta) throws Exception ;
	
	/**
	 * @desc 导出订单搭销产品统计
	 * @param provinceSta
	 * @return Workbook
	 * @throws Exception 
	 * @author liy
	 * @datetime 2014年12月14日,下午11:23:08
	 */
	public Workbook ridePinStaExport(MedicalOrdersRidepinSta ridepinSta) throws Exception ;
	
	
}
